package org.springblade.modules.repair.vo;

import lombok.Data;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.repair.enums.EmerProcTypeEnum;
import org.springblade.modules.repair.enums.WorkOrderTypeEnum;

import java.util.Date;
import java.util.List;

/**
 * 我的申请VO
 * @author Sharry
 * @since 2023/4/6
 */
@Data
public class MyApproveVO {

	/**
	 * 报障（计划）id
	 */
	private Long planId;

	/**
	 * 审批状态：1-待审批，2-通过，3-驳回， 4-撤回
	 */
	private Integer approveStatus;

	/**
	 * 项目（楼盘）名称
	 */
	private String buildingName;

	/**
	 * 电梯位置
	 */
	private String elevatorAddress;

	/**
	 * 报障时间,精确到分 yyyy MM dd HH mm
	 */
	private Date createTime;

	/**
	 * 是否停梯： 1-正常 2-停梯
	 */
	private Integer isStop;

	/**
	 * 维修进度 2-待开始， 3-进行中， 4-已完成， 5-已关闭
	 */
	private Integer status;

	/**
	 * 报障单位 id
	 */
	private Long createDept;

	/**
	 * 故障现象，问题描述项，字典 dict_key 拼接
	 */
	private String problemItem;

	/**
	 * 报障单位名称
	 */
	private String deptName;

	/**
	 * 报障用户名
	 */
	private String approveUser;

	/**
	 * 格式化时间
	 */
	private String sdfTime;

	/**
	 * 电梯id
	 */
	private Long elevatorId;

	/**
	 * 维修进度 2-待开始， 3-维修中， 4-已完成， 5-已关闭
	 * 转成 String 方便 前端显示
	 */
	private String statusName;

	/**
	 * 故障现象，问题描述项，字典 dict_key 拼接
	 */
	private String[] problemNames;

	/**
	 * 前端所需 报障申请id
	 */
	private Long businessApproveId;

	/**
	 * 故障现象其他描述
	 */
	private String problemOtherDesc;

	/**
	 * 部件名称集合
	 */
	private String partsNames;

	/**
	 * 层站id集合
	 */
	private String floorStandIds;

	/**
	 * 层站名称集合
	 */
	private String floorStandNames;

	/**
	 * 紧急程度
	 */
	private Integer emerProcType;

	/**
	 * 工单类型
	 */
	private Integer workOrderType;

	/**
	 * 紧急程度描述
	 */
	private String emerProcTypeName;

	/**
	 * 工单类型描述
	 */
	private String workOrderTypeName;

	public void setPartsNames(String partsNames) {
		if(Func.isNotEmpty(partsNames)){
			this.partsNames = partsNames.replace("&amp;&amp;",">");
		}
	}

	public void setFloorStandNames(String floorStandNames) {
		if(Func.isNotEmpty(floorStandNames)){
			this.floorStandNames = floorStandNames.replace("&amp;&amp;",">");
		}
	}

	public void setEmerProcType(Integer emerProcType) {
		if(Func.isNotEmpty(emerProcType)){
			this.emerProcTypeName = EmerProcTypeEnum.getName(emerProcType);
		}
		this.emerProcType = emerProcType;
	}

	public void setWorkOrderType(Integer workOrderType) {
		if(Func.isNotEmpty(workOrderType)){
			this.workOrderTypeName = WorkOrderTypeEnum.getName(workOrderType);
		}
		this.workOrderType = workOrderType;
	}

}
